home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / Z-Misc Series / (k)zj.d64 / txt.cursor < prev    next >
Text File  |  2007-03-01  |  3KB  |  139 lines

  1. ┴╬ ╒╬─┼╥╙├╧╥┼ ├╒╥╙╧╥
  2.  
  3. BY ─ICK ╦LINGENS
  4. ─UTCH ├╧═┴╠ ╒SERS ╟ROUP
  5.  
  6. ┴S YOU PERHAPS KNOW THE CURSOR ON OUR
  7. ├64 SCREEN ISN'T A REAL CURSOR. ╔N
  8. FACT THE CURSOR IS CREATED BY
  9. REPEATATIVE SHOWING THE CHARACTER ON
  10. THE CURSOR POSITION IN ITS NORMAL AND
  11. REVERSED SHAPE.
  12.  
  13. ╫E ILLUSTRATE THE ┬┴╙╔├ KERNAL
  14. ROUTINE IN ├╧═┴╠
  15.  
  16.  ╨┴╟┼
  17.  SCREEN:=$0400
  18.  ROW:=12; COL:=20
  19.  OFFSET:=(ROW-1)*40+(COL-1)
  20.  ADDRESS:=SCREEN+OFFSET
  21.  CODE:=1 // SCREEN CODE FOR ┴
  22.  ╥┼╨┼┴╘ 
  23.    ╨╧╦┼ ADDRESS,CODE
  24.    DELAY
  25.    ╨╧╦┼ ADDRESS,CODE+128
  26.    DELAY
  27.  ╒╬╘╔╠ 1=2 // FOREVER
  28.  //
  29.  ╨╥╧├ DELAY ├╠╧╙┼─
  30.    ╞╧╥ W:=1 ╘╧ 500 ─╧ ╬╒╠╠
  31.  ┼╬─╨╥╧├ DELAY
  32.  
  33. ╬OW WE SEE IN THE MIDDLE OF THE
  34. SCREEN A BLINKING ┴.
  35.  
  36. ╘HE NORMAL/REVERSED SHAPES ARE STORED
  37. SOMEWERE IN MEMORY AND CAN SIMPLY BE
  38. CHANGED USING THE ╞╧╬╘ PACKAGE. ╫E
  39. SHALL USE THAT PACKAGE TO CREATE AN
  40. UNDERSCORE CURSOR.
  41.  
  42. ┼ACH CHARACTER IS STORED USING 8X8
  43. BITS. ╞OR EXAMPLE THE CHARACTER ┴:
  44.  
  45.    NORMAL:            REVERSED:
  46.    00011000           11100111
  47.    00111100           11000011
  48.    01100110           10011001
  49.    01111110           10000001
  50.    01100110           10011001
  51.    01100110           10011001
  52.    01100110           10011001
  53.    00000000           11111111
  54.  
  55. ╘HE 8TH LINE IN THE NORMAL SHAPE IS
  56. NOT IN USE. ╫E CHANGE THIS LINE INTO
  57.  
  58.            11111111
  59.  
  60. AND USE THIS NEW SHAPE AS THE
  61. REVERSED ONE. ╔N THIS WAY WE HAVE THE
  62. IMPRESSION OF AN UNDERSCORE CURSOR.
  63.  
  64. ╘HE FOLLOWING PROCEDURE CHANGES THE
  65. SECOND PART CONSISTING OF 128
  66. CHARACTERS (THE REVERSED CHARACTERS)
  67. IN THE FONTS 0 EN 1 IN THE DESCRIBED
  68. WAY.
  69.  
  70. ╞IRST TYPE BEFORE EXECUTING THE
  71. PROCEDURE
  72.  
  73.    ╒╙┼ FONT 
  74.    KEEPFONT
  75.  
  76. TO PUT THE ╥╧═ CHARACTER SET INTO THE
  77. UNPROTECTED CHARACTER AREA THAT CAN
  78. BE CHANGED BY THE USER.
  79.  
  80. ╨╥╧├ SET ├╠╧╙┼─
  81.  ╒╙┼ FONT
  82.  ─╔═ KAR$ ╧╞ 8
  83.  ╞╧╥ CH#:=0 ╘╧ 127 ─╧
  84.   ╞╧╥ FNT#:=0 ╘╧ 1 ─╧
  85.    // GET NORMAL CHARACTER
  86.    GETCHARACTER(FNT#,CH#,KAR$)
  87.    ╥┼╙╘╧╥┼ 
  88.    // CHANGE BITS IN EACH ROW
  89.    // ACCORDING TO THE MASK
  90.    ╞╧╥ BIT#:=1 ╘╧ 8 ─╧
  91.     ╥┼┴─ MASK
  92.     NCH:=╧╥─(KAR$(BIT#)) ┬╔╘╧╥ MASK
  93.     KAR$(BIT#):=├╚╥$(NCH)
  94.    ┼╬─╞╧╥ BIT#
  95.    // REPLACE REVERSED CHARACTER
  96.    PUTCHARACTER(FNT#,CH#+128,KAR$)
  97.   ┼╬─╞╧╥ FNT#
  98.  ┼╬─╞╧╥ CH#
  99.  //
  100.  ─┴╘┴ %00000000
  101.  ─┴╘┴ %00000000
  102.  ─┴╘┴ %00000000
  103.  ─┴╘┴ %00000000
  104.  ─┴╘┴ %00000000
  105.  ─┴╘┴ %00000000
  106.  ─┴╘┴ %00000000
  107.  ─┴╘┴ %11111111
  108. ┼╬─╨╥╧├ SET
  109.  
  110. ╘O CHANGE THE UNDERSCORE CURSOR INTO
  111. THE NORMAL ONE WE MUST USE A TRICK,
  112. BECAUSE A KEPT FONT CANNOT BE
  113. DISCARDED.
  114.  
  115. ╙O TYPE
  116.  
  117.    NOFONT
  118.    DISCARD
  119.  
  120. USING THE FOLLOWING PROCEDURE:
  121.  
  122. ╨╥╧├ NOFONT ├╠╧╙┼─
  123.   REG:=$C2BB
  124.   MASK:=%10000000 ┬╔╘╪╧╥ 255
  125.   ROM(REG)
  126.   //
  127.   ╨╥╧├ ROM(X) 
  128.     ╨╧╦┼ X,╨┼┼╦(X) ┬╔╘┴╬─ MASK
  129.   ┼╬─╨╥╧├ ROM
  130. ┼╬─╨╥╧├ NOFONT
  131.  
  132. ╧N DISK THERE IS A PROGRAM CALLED
  133. ╙┼╘'├╒╥╙╧╥ EXECUTING THE ABOVE
  134. COMMANDS FOR YOU.
  135.  
  136. ╧NE THINGS IS FOR SURE: ├╧═┴╠ AND THE
  137. UNDERSCORE CURSOR MAKE YOUR COMPUTER
  138. LOOK LIKE A PROFESSIONAL ONE.
  139.